package com.zkingsoft.plugin.util;

import java.util.List;

import javax.servlet.http.HttpServletRequest;


/**
 * 显示分页数据的pageBean
 * 包含5个分页必须的元素
 * 1.pageNow
 * 2.pageSize
 * 3.pageCount  一共有多少页
 * 4.itemCount  总记录数有多少条
 * 5.objectList 得到的数据集合是一个list
 * @author JiangYouYao
 *
 */
public  class PageBean<T> {
	private Integer pageNow;
	private Integer pageSize;
	private Integer pageCount=0;
	private Integer itemCount;
	private Integer begin;
	private Integer end;
	
	
	private List<T> objList;
	private String url;
	
	
	/**
	 *  pageBean的pageSize,pageNow,url进行初始化
	 *  有默认的pageSize，如果url上没有带pageSize就会使用默认的pageSize
	 * @param pageBean
	 * @param request
	 * @param urlParam 需要每次都添加到分页后面的参数
	 */
	public static <T> void initPageBean(PageBean<T> pageBean ,HttpServletRequest request,String urlParam){
		String userPageSize=request.getParameter("pageSize");
		if(userPageSize==null){
			pageBean.setPageSize(5);
		}else{
			pageBean.setPageSize(Integer.parseInt(userPageSize));
		}
		String pageNow=request.getParameter("pageNow");
		if(pageNow!=null&&Integer.parseInt(pageNow)>0){
			pageBean.setPageNow(Integer.parseInt(pageNow));
		}else{
			pageBean.setPageNow(1);
		}
		pageBean.begin=(pageBean.pageNow-1)*pageBean.pageSize;
		pageBean.end=pageBean.pageNow*pageBean.pageSize;
		pageBean.url=request.getRequestURI()+"?jyy=1"+urlParam;
	}
	
	
	public String getUrl(){
		return url; 
	}
	
	
	
	
	public Integer getPageNow() {
		return pageNow;
	}
	public void setPageNow(Integer pageNow) {
		this.pageNow = pageNow;
	}
	public Integer getPageSize() {
		if(pageSize==null||pageSize==0)
		{
			pageSize=10;
		}
		return pageSize;
	}
	public void setPageSize(Integer pageSize) {
		this.pageSize = pageSize;
	}
	public Integer getPageCount() {
		return pageCount;
	}
	public void setPageCount(Integer pageCount) {
		this.pageCount = pageCount;
	}
	public Integer getItemCount() {
		return itemCount;
	}
	public void setItemCount(Integer itemCount) {
		this.itemCount = itemCount;
	}
	public List<T> getObjList() {
		return objList;
	}
	public void setObjList(List<T> list) {
		this.objList = list;
	}
	
	
	
	
	@Override
	public String toString() {
		return "PageBean [pageNow=" + pageNow + ", pageSize=" + pageSize
				+ ", pageCount=" + pageCount + ", itemCount=" + itemCount
				+ ", objList=" + objList + ", url=" + url + "]";
	}

	/**
	 *设置查询到的分页数据 <br>
	 *设置分页查询出的总数<br>
	 * @param pageBean 
	 * @data 2015年8月12日 下午8:58:12 
	·* @author JYY	
	 * @param list
	 * @param count
	 */
	public static <T> PageBean<T> setPageBeanQueryDate(PageBean<T> pageBean, List<T> list, int count) {
		pageBean.setObjList(list);
		pageBean.setPageCount((count-1)/pageBean.getPageSize()+1);
		pageBean.setItemCount(count);
		return pageBean;
	}
	
	
}
